//处理登录的接口
const Services = require('../service/service');
//接入短信的sdk
let QcloudSms = require("qcloudsms_js");
let code = '';
class LoginController {
  //账号密码登录
  async login(ctx, next) {
    let {
      username,
      password
    } = ctx.request.body
    const res = await Services.login(username, password)
    if (res.length) {
      ctx.body = {
        code: 0,
        message: '登录成功',
        data: res[0]
      }
    } else {
      ctx.body = {
        code: 404,
        message: '用户名或密码不正确',
        data: {}
      }
    }

    await next();
  }
  //是否可以注册
  async canReg(ctx, next) {
    const {
      telNumber
    } = ctx.request.body;
    const res = await Services.canReg(telNumber);
    if (res.length) {
      ctx.body = {
        code: 400,
        message: '此账号已经被注册过了!',
        canReg: false
      }
    } else {
      ctx.body = {
        code: 0,
        message: '此账号可以被注册',
        canReg: true
      }
    }
    await next();
  }
  //发送短信验证码
  async sendCode(ctx, next) {
    //前端给后端的数据
    let params = {
      telNumber: ctx.request.body.telNumber
    };
    // 短信应用 SDK AppID
    let appid = 1400187558; // SDK AppID 以1400开头
    // 短信应用 SDK AppKey
    let appkey = "dc9dc3391896235ddc2325685047edc7";
    // 需要发送短信的手机号码
    let phoneNumbers = [params.telNumber];
    // 短信模板 ID，需要在短信控制台中申请
    let templateId = 298000; // NOTE: 这里的模板ID`7839`只是示例，真实的模板 ID 需要在短信控制台中申请
    // 签名
    let smsSign = "三人行慕课"; // NOTE: 签名参数使用的是`签名内容`，而不是`签名ID`。这里的签名"腾讯云"只是示例，真实的签名需要在短信控制台申请
    // 实例化 QcloudSms
    let qcloudsms = QcloudSms(appid, appkey);
    let ssender = qcloudsms.SmsSingleSender();
    let paramss = [Math.floor(Math.random() * (9999 - 1000)) + 1000]; //发送的验证码
    ssender.sendWithParam("86", phoneNumbers[0], templateId,
      paramss, smsSign, "", "", callback);
    // 设置请求回调处理, 这里只是演示，用户需要自定义相应处理回调
   function callback(err, ress, resData) {
      if (err) {
        console.log("err: ", err);
        return ctx.body = {
          success: false,
          msg: '获取验证码失败'
        }
      } else {
        code = ress.req.body.params[0];
        console.log('成功', code);
        return ctx.body = {
          success: true,
          msg: '获取验证码成功',
          code
        }
      }
      console.log(ctx.body)
    }
    await next();
  }
  //增加用户
  async addUser(ctx,next){
    
    await next();
  }
}
module.exports = new LoginController()